package com.zbcbms.dao;

import com.zbcbms.entity.Book;
import com.zbcbms.entity.chart.BookTypeChart;
import com.zbcbms.entity.vo.BookVo;

import java.util.List;

/**
 * @author fengq
 */
public interface BookDao extends BaseDao<Book>{

    /**
     * selectOneById
     * @param id
     * @return
     */
    BookVo selectOneById(String id);


    /**
     * selectAllBook
     * @return
     */
    List<BookVo> selectAllBook();

    /**
     * updateStatusByNumber 根据书本编号修书本的状态
     * @param number
     * @param status
     * @return
     */
    Boolean updateStatusByNumber(String number,String status);

    /**
     * 根据number查找id
     * @param number
     * @return
     */
    String selectIdByNumber(String number);

    /**
     * selectAllBookNumber 查询所有书本编号
     * @return
     */
    List<String> selectAllBookNumberWithStatus();

    /**
     * 根据关键词查询书本编号
     * @param keyword
     * @return
     */
    List<String> selectNumberByKeywordWithStatus(String keyword);

    /**
     * selectBookNameByNumber
     * @param number
     * @return
     */
    String selectBookNameByNumber(String number);

    /**
     * selectBookCountByType
     * @return
     */
    List<BookTypeChart> selectBookCountByType();

    /**
     * selectAllDeletedBook
     * @return
     */
    List<BookVo> selectAllDeletedBook();

    /**
     * selectUserVoByKeWord 根据关键词查询
     * @param keyword
     * @return
     */
    List<BookVo> selectBookVoByKeWord(String keyword);
}
